home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
vol_400
/
414_01
/
directry.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-11-15
|
6KB
|
238 lines
/*
* THE - The Hessling Editor. A text editor similar to VM/CMS xedit.
* Copyright (C) 1991-1993 Mark Hessling
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to:
*
* The Free Software Foundation, Inc.
* 675 Mass Ave,
* Cambridge, MA 02139 USA.
*
*
* If you make modifications to this software that you feel increases
* it usefulness for the rest of the community, please email the
* changes, enhancements, bug fixes as well as any and all ideas to me.
* This software is going to be maintained and enhanced as deemed
* necessary by the community.
*
* Mark Hessling email: M.Hessling@gu.edu.au
* 36 David Road Phone: +61 7 849 7731
* Holland Park Fax: +61 7 875 5314
* QLD 4121
* Australia
*/
/*
$Header: C:\THE\RCS\directry.h 1.4 1993/09/01 16:26:08 MH Interim MH $
*/
#if defined(DOS) && defined(TC)
#define F_RO FA_RDONLY
#define F_HI FA_HIDDEN
#define F_SY FA_SYSTEM
#define F_DI FA_DIREC
#define F_AR FA_ARCH
#define FSTR_TYPE struct ffblk
#define ATTR_TYPE char
#define DATE_TYPE int
#define TIME_TYPE int
#define SIZE_TYPE long
#define D_TYPE DATE_TYPE
#define T_TYPE TIME_TYPE
#define DONE_TYPE int
#define ATTR_NAME ff_attrib
#define DATE_NAME ff_fdate
#define TIME_NAME ff_ftime
#define SIZE_NAME ff_fsize
#define NAME_NAME ff_name
#define D_NAME dp->fdate
#define T_NAME dp->ftime
#define HOUR_MASK ((time & 0xf800) >> 11)
#define MINU_MASK ((time & 0x07e0) >> 5)
#define DAYS_MASK (date & 0x001f)
#define MONT_MASK (mon[((date & 0x01e0) >> 5)-1])
#define YEAR_MASK (((date & 0xfe00) >> 9)+80)
#endif
#if defined(DOS) && defined(MSC)
#include <dos.h>
#define F_RO _A_RDONLY
#define F_HI _A_HIDDEN
#define F_SY _A_SYSTEM
#define F_DI _A_SUBDIR
#define F_AR _A_ARCH
#define FSTR_TYPE struct find_t
#define ATTR_TYPE char
#define DATE_TYPE unsigned int
#define TIME_TYPE unsigned int
#define SIZE_TYPE long
#define D_TYPE DATE_TYPE
#define T_TYPE TIME_TYPE
#define DONE_TYPE int
#define ATTR_NAME attrib
#define DATE_NAME wr_date
#define TIME_NAME wr_time
#define SIZE_NAME size
#define NAME_NAME name
#define D_NAME dp->fdate
#define T_NAME dp->ftime
#define HOUR_MASK ((time & 0xf800) >> 11)
#define MINU_MASK ((time & 0x07e0) >> 5)
#define DAYS_MASK (date & 0x001f)
#define MONT_MASK (mon[((date & 0x01e0) >> 5)-1])
#define YEAR_MASK (((date & 0xfe00) >> 9)+80)
#endif
#if defined(DOS) && defined(GO32)
#define F_RO FA_RDONLY
#define F_HI FA_HIDDEN
#define F_SY FA_SYSTEM
#define F_DI FA_DIREC
#define F_AR FA_ARCH
#define FSTR_TYPE struct ffblk
#define ATTR_TYPE char
#define DATE_TYPE int
#define TIME_TYPE int
#define SIZE_TYPE long
#define D_TYPE DATE_TYPE
#define T_TYPE TIME_TYPE
#define DONE_TYPE int
#define ATTR_NAME ff_attrib
#define DATE_NAME ff_fdate
#define TIME_NAME ff_ftime
#define SIZE_NAME ff_fsize
#define NAME_NAME ff_name
#define D_NAME dp->fdate
#define T_NAME dp->ftime
#define HOUR_MASK ((time & 0xf800) >> 11)
#define MINU_MASK ((time & 0x07e0) >> 5)
#define DAYS_MASK (date & 0x001f)
#define MONT_MASK (mon[((date & 0x01e0) >> 5)-1])
#define YEAR_MASK (((date & 0xfe00) >> 9)+80)
#endif
#ifdef OS2
#define F_RO FILE_READONLY
#define F_HI FILE_HIDDEN
#define F_SY FILE_SYSTEM
#define F_DI FILE_DIRECTORY
#define F_AR FILE_ARCHIVED
#define FSTR_TYPE FILEFINDBUF
#define ATTR_TYPE USHORT
#define DATE_TYPE FDATE
#define TIME_TYPE FTIME
#define SIZE_TYPE ULONG
#define D_TYPE DATE_TYPE
#define T_TYPE TIME_TYPE
#define DONE_TYPE USHORT
#define ATTR_NAME attrFile
#define DATE_NAME fdateLastWrite
#define TIME_NAME ftimeLastWrite
#define SIZE_NAME cbFile
#define NAME_NAME achName
#define D_NAME dp->fdate
#define T_NAME dp->ftime
#define HOUR_MASK (time.hours)
#define MINU_MASK (time.minutes)
#define DAYS_MASK (date.day)
#define MONT_MASK (mon[date.month-1])
#define YEAR_MASK (date.year+80)
#endif
#if defined(UNIX)
# if defined(M_XENIX)
# include <sys/dirent.h>
# include <sys/ndir.h>
# else
# include <dirent.h>
# endif
# include <time.h>
#define F_RO 0
#define F_HI 0
#define F_SY 0
#define F_DI 0
#define F_AR 0
#if defined(ATT) || defined(M_XENIX)
#define mode_t ushort
#endif
#define ATTR_TYPE mode_t
#define SIZE_TYPE long
#define TIME_TYPE time_t
#define DATE_TYPE char
#define D_TYPE struct tm *
#define T_TYPE struct tm *
#define DONE_TYPE int
#define D_NAME timp
#define T_NAME timp
#define HOUR_MASK (time->tm_hour)
#define MINU_MASK (time->tm_min)
#define DAYS_MASK (date->tm_mday)
#define MONT_MASK (mon[date->tm_mon])
#define YEAR_MASK (date->tm_year)
#endif
struct dirfile {
char *fname; /* file name */
ATTR_TYPE fattr; /* file attributes */
SIZE_TYPE fsize; /* size of file */
TIME_TYPE ftime; /* time (last write) */
DATE_TYPE fdate; /* date (if seperate to time) */
};
#ifdef PROTO
int fcomp(); /* this has been deliberatly left undefined */
char *make_full(char *,char *);
int getfiles(char *,char *,struct dirfile **,struct dirfile **);
char *file_attrs(ATTR_TYPE,char *);
char *file_date(D_TYPE,char *);
char *file_time(T_TYPE,char *);
int set_dirtype(char *);
#else
int fcomp();
char *make_full();
int getfiles();
char *file_attrs();
char *file_date();
char *file_time();
int set_dirtype();
#endif